
local map = vim.api.nvim_set_keymap
-- 复用 opt 参数
local opt = {noremap = true, silent = true }

map("n", "W", ":w<Enter>", opt)
map("n", "<Tab>", "<C-w>w", opt)
map("n", "-", "zO", opt)
map("n", "<C-k>", "I//<Space><CR>", opt)
map("n", "<S-Insert>", "\"+p", opt)

-- -- visual模式下缩进代码
map("v", "H", "<gv", opt)
map("v", "L", ">gv", opt)
-- 上下移动选中文本
map("v", "J", ":move '>+1<CR>gv-gv", opt)
map("v", "K", ":move '<-2<CR>gv-gv", opt)
-- 在visual 模式里粘贴不要复制
map("v", "p", '"_dP', opt)
map("v", "<C-k>", "I// <Esc>", opt)

map("i", "[]", '[]<Left>', opt)
map("i", "<>", '<><Left>', opt)
map("i", "()", '()<Left>', opt)
map("i", "{}", '{}<Left>', opt)
map("i", ";;", '<Esc>A;<Esc>', opt)
map("i", "{}<Space>", '{}<Left><Enter><Esc>O  ', opt)
map("i", "<S-Insert>", "<C-R>+", opt)

-- Telescope
local teleBuildin = require('telescope.builtin')
local setmap = vim.keymap.set;
setmap("n", "<leader>\\", teleBuildin.find_files,opt)
setmap("n", "\\", ":CocList files<CR>",opt)

setmap("n", "<C-p>", teleBuildin.buffers, opt)

-- setmap("n", "<S-f>F", teleBuildin.live_grep, opt)
setmap("n", "<S-f>F", ":CocList grep ", opt)
setmap("n", "<S-s>", ":CocList words<CR>", opt)

map("n", "<S-f>", ":Telescope file_browser<CR>", opt)

map('n', '<S-w>', ":lua require'telescope'.extensions.project.project{}<CR>", opt)

local augroup = vim.api.nvim_create_augroup   -- Create/get autocommand group
local autocmd = vim.api.nvim_create_autocmd   -- Create autocommand

-- General settings:
--------------------

-- Remove whitespace on save
autocmd('VimEnter', {
  pattern = '',
  command = "nmap <space> :w<enter>"
})


-- nvim-tree
-- alt + m 键打开关闭tree
map("n", "<A-m>", ":NvimTreeToggle<CR>", opt)

return pluginKeys
